"""python3 is 与 == 区别
python 对象三部分，标识（identify），类型（type），值（value）
is 判断二个变量引用的对象地址是否相同，调用id()
== 判断二个变量引用的对象值是否相同，调用__eq__()
"""
a = 257
b = 257
print(id(a), id(b))
print(a == b)
print(a is b)
"""
1.is 比较两个对象的id 是否相等，是否指向同一个内存地址；
2.== 比较的是两个对象的内容是否相等，值是否相等；
3.小整数对象[-5,256]在全局解释器范围内被放入缓存供重复使用, pycharm或xxx.py文件为[-5, 任意正整数]；
4.is 运算符比 == 效率高，在变量和None 进行比较时，应该使用is。
5.缓存机制:python解释器启动时就自动创建高频使用的对象，以减少频繁使用的数据对象创建销毁的资源开销。Python中缓存分为固定缓存和运行时缓存。
固定缓存是在解释器启动时就创建的，比如整数的[-5, 256]、None、True、False。运行时缓存是指在程序执行过程中，解释器为了优化程序数据对象的创建而设定的缓存，
比如字符串、[-5, 256]以外的整数等。
"""